Intel MPX Explained: An Empirical Study of Intel MPX and Software-based Bounds Checking Approaches

نویسندگان

  • Oleksii Oleksenko
  • Dmitrii Kuvaiskii
  • Pramod Bhatotia
  • Pascal Felber
  • Christof Fetzer
چکیده

Memory-safety violations are a prevalent cause of both reliability and security vulnerabilities in systems software written in unsafe languages like C/C++. Unfortunately, all the existing software-based solutions to this problem exhibit high performance overheads preventing them from wide adoption in production runs. To address this issue, Intel recently released a new ISA extension—Memory Protection Extensions (Intel MPX), a hardware-assisted full-stack solution to protect against memory safety violations. In this work, we perform an exhaustive study of the Intel MPX architecture to understand its advantages and caveats. We base our study along three dimensions: (a) performance overheads, (b) security guarantees, and (c) usability issues. To put our results in perspective, we compare Intel MPX with three prominent software-based approaches: (1) trip-wire—AddressSanitizer, (2) objectbased—SAFECode, and (3) pointer-based—SoftBound. Our main conclusion is that Intel MPX is a promising technique that is not yet practical for widespread adoption. Intel MPX’s performance overheads are still high (~50% on average), and the supporting infrastructure has bugs which may cause compilation or runtime errors. Moreover, we showcase the design limitations of Intel MPX: it cannot detect temporal errors, may have false positives and false negatives in multithreaded code, and its restrictions on memory layout require substantial code changes for some programs. This paper presents only the general discussion and aggregated data; for the complete evaluation, please see the supporting website: https://Intel-MPX.github.io/. Evaluation plots and section headings have hyperlinks to the complete experimental description and results.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Everything You Want to Know About Pointer-Based Checking

Lack of memory safety in C/C++ has resulted in numerous security vulnerabilities and serious bugs in large software systems. This paper highlights the challenges in enforcing memory safety for C/C++ programs and progress made as part of the SoftBoundCETS project. We have been exploring memory safety enforcement at various levels – in hardware, in the compiler, and as a hardware-compiler hybrid ...

متن کامل

Towards Linux Kernel Memory Safety

Œe security of billions of devices worldwide depends on the security and robustness of the mainline Linux kernel. However, the increasing number of kernel-specific vulnerabilities, especially memory safety vulnerabilities, shows that the kernel is a popular and practically exploitable target. Two major causes of memory safety vulnerabilities are reference counter overflows (temporal memory erro...

متن کامل

Enhancing case definitions for surveillance of human monkeypox in the Democratic Republic of Congo

BACKGROUND Human monkeypox (MPX) occurs at appreciable rates in the Democratic Republic of Congo (DRC). Infection with varicella zoster virus (VZV) has a similar presentation to that of MPX, and in areas where MPX is endemic these two illnesses are commonly mistaken. This study evaluated the diagnostic utility of two surveillance case definitions for MPX and specific clinical characteristics as...

متن کامل

MPX-004 and MPX-007: New Pharmacological Tools to Study the Physiology of NMDA Receptors Containing the GluN2A Subunit

GluN2A is the most abundant of the GluN2 NMDA receptor subunits in the mammalian CNS. Physiological and genetic evidence implicate GluN2A-containing receptors in susceptibility to autism, schizophrenia, childhood epilepsy and neurodevelopmental disorders such as Rett Syndrome. However, GluN2A-selective pharmacological probes to explore the therapeutic potential of targeting these receptors have...

متن کامل

MPX: Software for Multiplexing Hardware Performance Counters in Multithreaded Programs

Hardware performance counters are CPU registers that count data loads and stores, cache misses, and other events. Counter data can help programmers understand software performance. Although CPUs typically have multiple counters, each can monitor only one type of event at a time, and some counters can monitor only certain events. Therefore, some CPUs cannot concurrently monitor interesting combi...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • CoRR

دوره abs/1702.00719  شماره 

صفحات  -

تاریخ انتشار 2017